#ifndef _SOC_MEMORY_MAP_H
#define _SOC_MEMORY_MAP_H

#define ANATOP_IPS_BASE_ADDR 0x020c8000

#define ADC1_BASE_ADDR 0x02198000
#define ADC2_BASE_ADDR 0x0219c000
#define APBH_BASE_ADDR 0x01804000
#define ASRC_BASE_ADDR 0x02034000
#define BCH_BASE_ADDR 0x01808000
#define CCM_BASE_ADDR 0x020c4000
#define CCM_ANALOG_BASE_ADDR 0x020c8000
#define CSI_BASE_ADDR 0x021c4000
#define ECSPI1_BASE_ADDR 0x02008000
#define ECSPI2_BASE_ADDR 0x0200c000
#define ECSPI3_BASE_ADDR 0x02010000
#define ECSPI4_BASE_ADDR 0x02014000
#define EIM_BASE_ADDR 0x021b8000
#define EMVSIM1_BASE_ADDR 0x0218c000
#define EMVSIM2_BASE_ADDR 0x021b4000
#define ENET1_BASE_ADDR 0x02188000
#define ENET2_BASE_ADDR 0x020b4000
#define EPIT1_BASE_ADDR 0x020d0000
#define EPIT2_BASE_ADDR 0x020d4000
#define FLEXCAN1_BASE_ADDR 0x02090000
#define FLEXCAN2_BASE_ADDR 0x02094000
#define GPC_BASE_ADDR 0x020dc000
#define GPIO1_BASE_ADDR 0x0209c000
#define GPIO2_BASE_ADDR 0x020a0000
#define GPIO3_BASE_ADDR 0x020a4000
#define GPIO4_BASE_ADDR 0x020a8000
#define GPIO5_BASE_ADDR 0x020ac000
#define GPMI_BASE_ADDR 0x01806000
#define GPT1_BASE_ADDR 0x02098000
#define GPT2_BASE_ADDR 0x020e8000
#define I2C1_BASE_ADDR 0x021a0000
#define I2C2_BASE_ADDR 0x021a4000
#define I2C3_BASE_ADDR 0x021a8000
#define I2C4_BASE_ADDR 0x021f8000
#define I2S1_BASE_ADDR 0x02028000
#define I2S2_BASE_ADDR 0x0202c000
#define I2S3_BASE_ADDR 0x02030000
#define IOMUXC_BASE_ADDR 0x020e0000
#define IOMUXC_GPR_BASE_ADDR 0x020e4000
#define KPP_BASE_ADDR 0x020b8000
#define LCDIF1_BASE_ADDR 0x02220000
#define LCDIF2_BASE_ADDR 0x02224000
#define MMDC_BASE_ADDR 0x021b0000
#define OCOTP_BASE_ADDR 0x021bc000
#define PMU_BASE_ADDR 0x020c8000
#define PWM1_BASE_ADDR 0x02080000
#define PWM2_BASE_ADDR 0x02084000
#define PWM3_BASE_ADDR 0x02088000
#define PWM4_BASE_ADDR 0x0208c000
#define PWM5_BASE_ADDR 0x020f0000
#define PWM6_BASE_ADDR 0x020f4000
#define PWM7_BASE_ADDR 0x020f8000
#define PWM8_BASE_ADDR 0x020fc000
#define PXP_BASE_ADDR 0x021cc000
#define QUADSPI_BASE_ADDR 0x021e0000
#define ROMC_BASE_ADDR 0x021ac000
#define SDMAARM_BASE_ADDR 0x020ec000
#define SDMABP_BASE_ADDR 0x020ec000
#define SDMACORE_BASE_ADDR 0x020ec000
#define SJC_BASE_ADDR 0x00000000
#define SNVS_BASE_ADDR 0x020cc000
#define SPBA_BASE_ADDR 0x0203c000
#define SPDIF_BASE_ADDR 0x02004000
#define SRC_BASE_ADDR 0x020d8000
#define TEMPMON_BASE_ADDR 0x020c8000
#define UART1_BASE_ADDR 0x02020000
#define UART2_BASE_ADDR 0x021e8000
#define UART3_BASE_ADDR 0x021ec000
#define UART4_BASE_ADDR 0x021f0000
#define UART5_BASE_ADDR 0x021f4000
#define UART6_BASE_ADDR 0x021fc000
#define UART7_BASE_ADDR 0x02018000
#define UART8_BASE_ADDR 0x02024000
#define USB_BASE_ADDR 0x02184000
#define USBNC_BASE_ADDR 0x02184000
#define USBPHY1_BASE_ADDR 0x020c9000
#define USBPHY2_BASE_ADDR 0x020ca000
#define USDHC1_BASE_ADDR 0x02190000
#define USDHC2_BASE_ADDR 0x02194000
#define WDOG1_BASE_ADDR 0x020bc000
#define WDOG2_BASE_ADDR 0x020c0000
#define WDOG3_BASE_ADDR 0x021e4000
#define XTALOSC24M_BASE_ADDR 0x020c8000

#define USB_UOG1_BASE_ADDR USB_BASE_ADDR
#define USB_UOG2_BASE_ADDR (USB_BASE_ADDR+0x200)

#define CCM_ANALOG_PLL_USB1n (CCM_ANALOG_BASE_ADDR+0x10)
#define CCM_ANALOG_PFD_528n (CCM_ANALOG_BASE_ADDR+0x100)

#define CAN0_BASE_ADDR FLEXCAN1_BASE_ADDR
#define CAN1_BASE_ADDR FLEXCAN2_BASE_ADDR
#define CSD0_BASE_ADDR 0x80000000

#define MMDC_P0_BASE_ADDR MMDC_BASE_ADDR


#endif //_SOC_MEMORY_MAP_H
